package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	lineNumber := 0
	
	for scanner.Scan() {
		line := scanner.Text()
		lineNumber++
		
		// 跳过标题行（第一行）
		if lineNumber == 1 {
			continue
		}
		
		// 解析CSV行
		columns, err := parseCSVLine(line)
		if err != nil || len(columns) < 12 {
			// 如果解析失败或列数不够，跳过这一行
			continue
		}
		
		// 获取prime_genre列（第12列，索引11）
		// 列顺序: 0:id, 1:track_name, ..., 11:prime_genre
		primeGenre := strings.TrimSpace(columns[11])
		
		// 如果genre不为空，输出 (genre, 1)
		if primeGenre != "" {
			// 清理genre名称，移除可能的引号和特殊字符
			cleanGenre := strings.Trim(primeGenre, `"`)
			cleanGenre = strings.TrimSpace(cleanGenre)
			
			if cleanGenre != "" {
				fmt.Printf("%s\t1\n", cleanGenre)
			}
		}
	}
	
	if err := scanner.Err(); err != nil {
		fmt.Fprintf(os.Stderr, "Error reading standard input: %v\n", err)
	}
}

// 简单的CSV解析函数
func parseCSVLine(line string) ([]string, error) {
	var fields []string
	var currentField strings.Builder
	inQuotes := false
	quoteChar := '"'
	
	for _, char := range line {
		switch {
		case char == quoteChar:
			inQuotes = !inQuotes
		case char == ',' && !inQuotes:
			// 字段结束
			fields = append(fields, currentField.String())
			currentField.Reset()
		default:
			currentField.WriteRune(char)
		}
	}
	
	// 添加最后一个字段
	fields = append(fields, currentField.String())
	return fields, nil
}